<?php
require_once 'AuthController.php';
class Category extends CI_Controller{

	private $model_path = 'be/category_model';
	private $model_name = 'category_model';
	private $icon;

	function __construct(){
		parent::__construct();
		$this->load->model($this->model_path);
		$this->load->helper ( 'form' );
		$this->load->helper ( 'url' );
		$this->load->library ( 'form_validation' );
	}
	
	function index(){
		$this->list_all();
	}
	
	function list_all() {
		$auth = new AuthController();
		if($auth->can('view', 'category')) {
			$data ['page_title'] = 'quản lý danh mục';
			$data ['category'] = $this->category_model->get();
			$data ['main_content'] = 'be/category/views';
			$this->load->view ( 'be/includes/template', $data );
		}else {
			$auth->denied();
		}
	}
	
	function add(){
		$auth = new AuthController();
		if($auth->can('add', 'category')) {
			$this->form_validation->set_rules ( 'categoryName', 'Tên danh mục', 'required' );
	
			if ($this->form_validation->run () == FALSE) {
				$data ['page_title'] = 'Danh mục mới';
				$data ['main_content'] = 'be/category/add';
				$this->load->view ( 'be/includes/template', $data );
			}else{
				$newdata['categoryName'] = $this->input->post ( 'categoryName' );
				$newdata['description'] = $this->input->post ( 'description' );
				if (! $this->category_model->add ( $newdata )) {
					$data ['page_title'] = 'Có lỗi xảy ra';
					$mess_detail = '<p>Hãy kiểm tra lại thông tin bạn đã điền vào form!</p>';
					$mess_detail .= '<p><a href="' . base_url () . 'index.php/category/add"> Làm lại</a> hoặc <a href="' . base_url () . 'index.php/category">Trở lại trang danh sách</a></p>';
					$data ['message_detail'] = $mess_detail;
				} else {
					$data ['page_title'] = 'Thành công';
					$mess_detail = '<p>Thêm danh mục mới thành công!</p>';
					$mess_detail .= '<p><a href="' . base_url () . 'index.php/category/add">Tiếp tục</a> hoặc <a href="' . base_url () . 'index.php/category">Trở lại trang danh sách</a>';
					$data ['message_detail'] = $mess_detail;
				}
				$data ['main_content'] = 'be/message';
				$this->load->view ( 'be/includes/template', $data );
					
			}
		}else {
			$auth->denied();
		}
	}
	
	function delete()
	{
		$auth = new AuthController();
		if($auth->can('delete', 'category')) {
			$ids = $this->input->post ( 'selected' );
			$flag = true;
			foreach ( $ids as $id ) {
				if (! $this->category_model->delete ( $id )) {
					$flag = false;
				}
			}
			if (! $flag) {
				//echo "Delete not successfully!";
			}
			redirect ( site_url ( '/category' ) );
		}else {
			$auth->denied();
		}
	}

	function update($id){
		$auth = new AuthController();
		if($auth->can('update', 'category')) {
			$data['id'] = $id;
	
			$data['cate'] = $this->category_model->get($id);
	
			$this->form_validation->set_rules ( 'categoryName', 'Tên danh mục ', 'required' );
	
			if ($this->form_validation->run () == FALSE) {
				$data ['page_title'] = 'Cập nhật danh mục';
				$data ['main_content'] = 'be/category/update';
				$this->load->view ( 'be/includes/template', $data );
			} 
			else{
				$newdata ['categoryName'] = $this->input->post ( 'categoryName' );
				$newdata ['description'] = $this->input->post ( 'description' );
				if (! $this->category_model->update ($id, $newdata )) {
					$data ['page_title'] = 'Có lỗi xảy ra';
					$mess_detail = '<p>Hãy kiểm tra lại thông tin bạn đã điền vào form!</p>';
					$mess_detail .= '<p><a href="' . base_url () . 'index.php/category/update/'.$id.'"> Làm lại</a> hoặc <a href="' . base_url () . 'index.php/category">Trở lại trang danh sách</a></p>';
					$data ['message_detail'] = $mess_detail;
				} else {
					$data ['page_title'] = 'Thành công';
					$mess_detail = '<p>Cập nhật danh mục thành công!</p>';
					$mess_detail .= '<p><a href="' . base_url () . 'index.php/category/update/'.$id.'">Tiếp tục</a> hoặc <a href="' . base_url () . 'index.php/category">Trở lại trang danh sách</a>';
					$data ['message_detail'] = $mess_detail;
				}
				$data ['main_content'] = 'be/message';
				$this->load->view ( 'be/includes/template', $data );
			}
		}else {
			$auth->denied();
		}
	}
}
?>